Fall 2022

CS 302

Programming Methodologies and             Software Implementation

The Latest Updates

 

 

 

 

 

CS302 for Fall 2022

The latest updates

 

CS302 is an exciting new class being offered at Portland State University. The goal of CS302 is to provide students with the necessary tools and foundational material to be successful in the Upper Division of Computer Science at Portland State University. The pre-req’s are CS163 (Data Structures) and CS201.

CS302 is being offered for the first time in the Fall of 2022. It is equivalent to PSU’s Spring and Summer CS202 offerings.

 

 

MCECS: The Maseeh College of Engineering and Computer Science

 

What is CS302 all about?

 -Karla Fant

CS302 introduces the principles and techniques for producing high-quality software solutions using modern programming languages such as modern C++ and Python. There is a heavy focus on learning different methodologies for solving problems using abstractions as a key component. We cover object-oriented, generic, and functional programming techniques with exposure to parallel programming. We experience contemporary software tools such as IDEs, debuggers, version control with git and much more. The key is that this course is about providing what you need to be successful in the upper division.

Prior to this point, the 1xx and 2xx level courses focused on building skills and knowledge in algorithms and data structures. Now it is time to apply what we learned to solving realistic problems. It isn’t enough to just know how to program; we need to know if our code is correct and understand the process of creating “working high-quality software”. This means we need to know how to test, debug, and perform error handling.

This is crucial to your success!

How is this different than CS202?

CS302 is not the same class as CS202 (prior to Spring 2022). In CS302, we take you through a path of learning different programming methodologies and explore modern programming concepts in both C++ and Python as we navigate the material. CS302 covers material on how to:

·       Apply the Modern C++ Standard Template Library

·       Read Specifications, test, debug, and provide error handling

·       Use Abstractions and Build Relationships between Class objects

·       Program using Generic techniques with Templates and Operator Overloading

·       Build software using Object Oriented Programing with Inheritance and Dynamic Binding

·       Understand the essence of Functional Programming, with Lambdas and explore Parallel Programing

·       Apply Techniques to Multiple Programming Languages

·       Become Fluent using Linux Tools

 

 

Your Programming Background

 

Coming into this course, you should be fluent programming algorithms and data structures taught in the 1xx and 2xx level courses. Hands-on knowledge of linear, circular, and doubly linked lists, arrays of linked lists (e.g., hash tables with chaining) and binary search trees is important.

 

For a refresher, consider taking CS299, our 1-credit data structure practice lab!

 

What Types of Exams are in CS302?

 

CS302 will have traditional written exams as well as live programming proficiency demostrations. These take place at the Midterm and Final times.  A proficiency demonstration is where you will show problem solving and programming skills.  

 

We will practice to prepare!

 

 

­

New Labs!

Modern Languages

Experience Tools

·       Hands-on time exploring Generic, Object-Oriented, Functional and Parallel Programming

·       Apply C++’s Standard Template Library, Python and Exception Handling to real world problems

·       Tools are integrated with all aspects of the course including gdb, git and the use of IDEs

 

­